// Functor 函子
class Container {
    // 定义一个静态方法来创建一个新的函子
    static of(value) {
        return new Container(value);
    }
    constructor(value) {
        this._value = value;
    }
    // 接收一个处理值的函数,把处理的结果传递给一个新的函子
    map(fn) {
        return Container.of(fn(this._value));
    }
}
let c = Container.of(5)
    .map((x) => x + 1)
    .map((x) => x * 6);
console.log(c);

// 副作用 直接传入null 或者 undefined  会报错
let r = Container.of(null).map((x) => x.toUpperCase());
console.log(r);
